#ifndef VARIABLE_H
#define VARIABLE_H

#include <QMap>
#include <QTimer>
#include <QTcpSocket>
#include <QReadWriteLock>
#include <QReadLocker>
#include <QQueue>
#include <QPrinter>
//#include "../model/model.h"

#include "initconfig.h"



//extern QQueue<QByteArray> d_queue;


//装有查询到的数据的容器
extern QVector<Target_Info_Table>searchDate;

//装有打印机对象的容器
extern QQueue<QPrinter*>printer_queue;

// StateOfTarget
//
//	当前靶标所处状态 具体值含义见常量值
//	注意没有 0 这个特殊状态,因为map获取一个不存在的key会默认返回类型零值
//	map 键值对格式 ==>  靶标ID : 状态
extern QMap<quint8,quint8> StateOfTargetMap;

// VoltageOfTarget 连接靶标的实时电压
extern QMap<quint8,double> VoltageOfTargetMap;

extern QMap<int,QTimer*> TimeMap;

extern bool Repeated;

// RecordSequence 弹序记录map
extern QMap<int,int> RecordSequenceMap;

// Container 校准数据存储容器
extern QMap<int,QVector<BulletPoint>> Container;

extern TargetInfo TargetConfig;

// SystemID 系统ID
extern unsigned int SystemID;


// TargetBelongTOUser 靶标和人员绑定,默认绑定"addr:user_id",表是未知人员
extern QMap<int,int> TargetBelongTOUserMap;

//声速
extern double SoundSpeed;

// ConnMap 已连接socket对象管理
extern QMap<QString,QTcpSocket*> ConnMap;

// StateOfTargetMapRwLock 靶标状态map读写锁
extern QReadWriteLock StateOfTargetMapRwLock;

// VoltageOfTarget 连接靶标的实时电压
extern QReadWriteLock VoltageOfTargetRWLock;

// TimeMapRWLock 定时器锁
extern QReadWriteLock TimeMapRWLock;

//TargetBelongToUserRWLock 用户靶标绑定锁
extern QReadWriteLock TargetBelongToUserRWLock;

 // initConfig 配置文件对象
 extern InitConfig initConfig;

 // CurGroupNumber 分组组号
 extern int CurGroupNumber;

 // CurDate 当前日期
 extern QString CurDate;

 //传感器位置
 extern double A1X;
 extern double A1Y;
 extern double A2X;
 extern double A2Y;
 extern double A3X;
 extern double A3Y;




#endif // VARIABLE_H
